#ifndef __REVERB_API_H
#define __REVERB_API_H



///模块管理代码
typedef void (*audio_callback_t)(u8 *ptr, u32 samples, int ch_mode, void *params);

typedef struct {
    u8 mute;
    u8 sample_rate;
    u16 samples;
    audio_callback_t callback;
} plate_reverb_cfg_t;

void plate_reverb_audio_input(u8 *ptr, u32 samples, int ch_mode, void *params);
void plate_reverb_audio_output_callback_set(audio_callback_t callback);
void plate_reverb_audio_init(u8 sample_rate, u16 samples);
void plate_reverb_audio_mute_set(uint8_t mute);
/// mix_set:       干湿比,值越大混响效果越明显 0-32767
/// damping_set:   阻尼,值越小高频衰减越多，声音越干 0-32767
/// decay_set:     衰减率,值越小，衰减越快，尾音少 0-32767
/// ALLPASS_G2_set:衰减扩散,控制尾部密度  0-32767
/// vocals_set:    人声部分,值越大,人声越突出  0-65535
/// 默认参数plate_reverb_set_param(8553,13638,20000,22999,32767)
void plate_reverb_audio_set_param(u16 mix_set, u16 damping_set, u16 decay_set, u16 ALLPASS_G2_set, u16 vocals_set);

#endif
